package com.work.dto.main;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * 单垛理货App提交
 *
 * @author ：dujianyu
 * @since ：Created in 2024/3/12 9:10
 */
@Data
public class OneStockTallyAppSubmitDTO {

    /** ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "主键ID",notes = "")
    private Long  id ;

    /** 货运船ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "货运船ID",notes = "")
    private Long  transportShipId ;

    /** 货运舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "货运舱单ID",notes = "")
    private Long  transportBillId ;

    /** 理货舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "理货舱单ID",notes = "")
    private Long tShipBillId ;

    /** 理货日期 */
    @ApiModelProperty(name = "理货日期",notes = "")
    private LocalDate tallyDate ;

    /** 时间段（班组） */
    @ApiModelProperty(name = "时间段（班组）",notes = "")
    private String timeSpace ;

    /** 时间段（出库） */
    @ApiModelProperty(name = "时间段（出库）",notes = "")
    private String outTimeSpace ;

    /** 航陆运 */
    @ApiModelProperty(name = "航陆运",notes = "")
    private String shipLand ;

    /** 作业过程 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "作业过程",notes = "")
    private Long operationType ;

    /** 作业活动 */
    @ApiModelProperty(name = "作业活动",notes = "")
    private String workActivity ;

    /** 作业活动名称 */
    @ApiModelProperty(name = "作业活动名称",notes = "")
    private String workActivityName ;

    /** 理货方式 */
    @ApiModelProperty(name = "理货方式",notes = "")
    private String tallyType ;

    /** 舱位 */
    @ApiModelProperty(name = "舱位",notes = "")
    private String hold ;

    /** 舱位名称 */
    @ApiModelProperty(name = "舱位名称",notes = "")
    private String holdName ;

    /** 场存区域id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "场存区域id",notes = "")
    private Long storageAreaId ;

    /** 场存区域名称 */
    @ApiModelProperty(name = "场存区域名称",notes = "")
    private String storageAreaName ;

    /** 场存货位id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "场存货位id",notes = "")
    private Long storagePositionId ;

    /** 场存货位名称 */
    @ApiModelProperty(name = "场存货位名称",notes = "")
    private String storagePositionName ;

    /** 场存具体位置 */
    @ApiModelProperty(name = "场存具体位置",notes = "")
    private String spot ;

    /** 影响的场存垛位id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "影响的场存垛位id",notes = "")
    private Long affectStorageId ;

    /** 理货包装 */
    @ApiModelProperty(name = "理货包装",notes = "")
    private String tallyPackageType ;

    /** 理货包装 */
    @ApiModelProperty(name = "理货包装",notes = "")
    private String tallyPackageTypeName ;

    /** 理货件数 */
    @ApiModelProperty(name = "理货件数",notes = "")
    private Integer tallyPiece ;

    /** 理货吨数 */
    @ApiModelProperty(name = "理货吨数",notes = "")
    private BigDecimal tallyTon ;

    /** 散杂 */
    @ApiModelProperty(name = "散杂",notes = "")
    private String bulkType ;

    /** 理货区域 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "理货区域",notes = "")
    private Long areaId ;

    /** 理货区域 */
    @ApiModelProperty(name = "理货区域",notes = "")
    private String areaName ;

    /** 保管员 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "保管员",notes = "")
    private Long keeper ;

    /** 保管员 */
    @ApiModelProperty(name = "保管员",notes = "")
    private String keeperName ;

    /** 苫盖 */
    @ApiModelProperty(name = "苫盖",notes = "")
    private String isCover ;

    /** 铺垫 */
    @ApiModelProperty(name = "铺垫",notes = "")
    private String isBedding ;

    /** 安全生产 */
    @ApiModelProperty(name = "安全生产",notes = "")
    private String isSafeProduction ;

    /** 备注 */
    @ApiModelProperty(name = "备注",notes = "")
    private String remark ;

    /** 备注 */
    @ApiModelProperty(name = "交班记录",notes = "")
    private String shipBillRemark ;

    /** 影响的场存垛位id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "一级配工ID",notes = "")
    private Long arrangeId ;

    /** 配工信息 */
    @ApiModelProperty(name = "配工信息",notes = "")
    private String arrangeInfo ;

    /** 公司 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "公司",notes = "")
    private Long company ;

    /** 公司 */
    @ApiModelProperty(name = "公司",notes = "")
    private String companyName ;

    /** 队 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "队",notes = "")
    private Long team ;

    /** 队 */
    @ApiModelProperty(name = "队",notes = "")
    private String teamName ;

    /** 组 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "组",notes = "")
    private Long groups ;

    /** 组 */
    @ApiModelProperty(name = "组",notes = "")
    private String groupsName ;

    /** 队组全名 */
    @ApiModelProperty(name = "队组全名",notes = "")
    private String workerInfo ;

    /** 车数 */
    @ApiModelProperty(name = "车数",notes = "")
    private String cars ;

    /** 是否退关 */
    @ApiModelProperty(name = "是否退关",notes = "")
    private String isRetreat ;

    /** 垛位信息ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "垛位信息ID",notes = "")
    private Long  goodsPositionId ;

    /** 区域code */
    @ApiModelProperty(name = "区域code",notes = "")
    private String areaCode ;

    /** 作业机械 */
    @ApiModelProperty(name = "作业机械",notes = "")
    private List<TallyMachineSubmitDTO> machineList;

    /** 机械IDs */
    @ApiModelProperty(name = "机械IDs",notes = "")
    private String machineIds ;

    /** 机械种类IDs */
    @ApiModelProperty(name = "机械种类IDs",notes = "")
    private String machineKinds ;

    /** 机械队组IDs */
    @ApiModelProperty(name = "机械队组IDs",notes = "")
    private String machineTeamIds ;

    /** 机械信息 */
    @ApiModelProperty(name = "机械信息",notes = "")
    private String machineInfo ;
}
